home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGASIC / BASFILES.LZH / QUICKSTI.BAS < prev    next >
BASIC Source File  |  1988-09-10  |  698b  |  42 lines

  1. '$INCLUDE:'QBTOOLS.INC'
  2. '' '$INCLUDE: 'qbtools2.inc'
  3.  
  4. DEFDBL V
  5. SUB QuickSortInt (fl%(), Elements%) STATIC
  6.     DIM stack%(30, 2)
  7.  
  8.     s% = 1
  9.     stack%(1, 1) = 1
  10.     stack%(1, 2) = Elements%
  11.     WHILE s% <> 0
  12.         l% = stack%(s%, 1)
  13.         r% = stack%(s%, 2)
  14.         s% = s% - 1
  15.         WHILE l% < r%
  16.             i% = l%
  17.             j% = r%
  18.             x% = fl%((l% + r%) / 2)
  19.             WHILE j% >= i%
  20.                 WHILE fl%(i%) < x%
  21.                     i% = i% + 1
  22.                 WEND
  23.                 WHILE x% < fl%(j%)
  24.                     j% = j% - 1
  25.                 WEND
  26.                 IF i% <= j% THEN
  27.                     SWAP fl%(j%), fl%(i%)
  28.                     i% = i% + 1
  29.                     j% = j% - 1
  30.                 END IF
  31.             WEND
  32.             IF i% < r% THEN
  33.                 s% = s% + 1
  34.                 stack%(s%, 1) = i%
  35.                 stack%(s%, 2) = r%
  36.             END IF
  37.             r% = j%
  38.           WEND
  39.     WEND
  40. END SUB
  41.  
  42.